﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace Checkpoint2XNA.Models
{
    public enum ChessSide { Shiny, Black }
    public abstract class Model3D
    {
        public float ReflectionMod { get; set; }

        public Vector3 CenterBottom { get; set; }
        public ChessSide Side { get; set; }
        public Color Color { get; set; }

        public Model3D()
        {
            ReflectionMod = 0;
        }

        public Model3D(Vector3 p, ChessSide s)
        {
            CenterBottom = p;
            ReflectionMod = 0;
            Side = s;

            if (s == ChessSide.Black)
            {
                Color = Color.DarkRed;
                ReflectionMod = .1f;
            }
            else
            {
                Color = Color.Silver;
                ReflectionMod = .4f;
            }
        }

        public abstract void MoveTo(Vector3 point);

        public abstract Color GetColorAt(Vector3 point);

        public abstract Vector3 GetNormal(Vector3 point);

        public abstract double RayCollide(Vector3 origin, Vector3 normalVector);

    }
}
